#ifndef CHAINE_CHAINE_ENTREE_H
#define CHAINE_CHAINE_ENTREE_H

	#include "chaineEntree.h"

	/* chaine avec suppression, modification et recherche de noeuds quelqonque avec ajout en tete*/
	typedef struct chaineChaineEntreeNode {char * clef; pChaineEntreeNode cible; struct chaineChaineEntreeNode * next;} * pChaineChaineEntreeNode;

	int chaineChaineEntreeNodeEstNull (pChaineChaineEntreeNode node);
	pChaineChaineEntreeNode nextChaineChaineEntreeNode(pChaineChaineEntreeNode node);
	char * clefChaineChaineEntreeNode(pChaineChaineEntreeNode node);
	pChaineEntreeNode cibleChaineChaineEntreeNode(pChaineChaineEntreeNode node);
	pChaineChaineEntreeNode nouveauChaineChaineEntreeNode (char * clef, pChaineEntreeNode cible);
	int cmpChaineChaineEntreeNodeClef(char * clef, pChaineChaineEntreeNode node);
	pChaineEntreeNode rechercheCibleChaineChaineEntreeNode(char * clef, pChaineChaineEntreeNode chaine);
	int existeChaineChaineEntreeNode(char *clef, pChaineChaineEntreeNode chaine);
	pChaineChaineEntreeNode ajoutChaineChaineEntreeNodeDebut(char * clef, pChaineEntreeNode cible, pChaineChaineEntreeNode chaine);
	pChaineChaineEntreeNode suppressionChaineChaineEntreeNode (char * clef, pChaineChaineEntreeNode chaine);
	int modifierCibleChaineChaineEntreeNode(char * clef, pChaineEntreeNode cible, pChaineChaineEntreeNode chaine);
	void afficheChaineChaineEntree (pChaineChaineEntreeNode chaine);

#endif
